package com.atguigu.nio;

import java.nio.ByteBuffer;

/**
 * @author: 叶子
 * @date: 2022/01/17 20:39
 * 演示Buffer可以转为只读
 **/
public class ReadOnlyBuffer {
    public static void main(String[] args) {
//        创建一个buffer
        ByteBuffer buffer= ByteBuffer.allocate(64);
        for (int i = 0; i <64; i++) {
            buffer.put((byte) i);//默认是按字节来存放的，所以需要强转类型
        }
//        读取
        buffer.flip();//先flip再读写转换
//        得到一个只读的Buffer
        ByteBuffer readOnlyBuffer = buffer.asReadOnlyBuffer();
        System.out.println(readOnlyBuffer.getClass());
//        读取
        while (readOnlyBuffer.hasRemaining()){
            System.out.println(readOnlyBuffer.get());
        }
//        readOnlyBuffer.put((byte) 3);//如果再往里面放数据，抛出java.nio.ReadOnlyBufferException
    }
}